#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
//	int* p = NULL;
//	int arr[10] = { 0 };
//
//
//	//A.p = arr;
//	//B.int(*ptr)[10] = &arr;
//	//C.p = &arr[0];
//	//D.p = &arr;
//
//
//
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0 };
//	return 0;
//
//
//		/*A.数组名arr和& arr是一样的
//		B.sizeof(arr)，arr表示整个数组
//		C.& arr，arr表示整个数组
//		D.除了sizeof(arr)和& arr中的数组名，其他地方出现的数组名arr，都是数组首元素的地址。*/
//	return0；
//}


//int main()
//{
//
//
//
//
//	return 0;
//}
//有一个数字矩阵，矩阵的每行从左到右是递增的，矩阵从上到下是递增的，请编写程序在这样的矩阵中查找某个数字是否存在。
//要求：时间复杂度小于O(N);
//void L_Turn(char arr[], int k, int sz)
//{
//	char arr1[10] = {"0"};
//
//	int i = 0;
//	int j = 0;
//	for (i = k; i < sz; i++)
//	{
//		arr1[j] = arr[i];
//		j++;
//	}
//	for (i = 0; i < (sz - k+1); i++)
//	{
//		arr1[j] = arr[i];
//		j++;
//	}
//	for (i = 0; i < sz; i++)
//	{
//		printf("%c", arr1[i]);
//	}
//}
//int main()
//{																											
//	int k = 0;
//	char arr[] = { "abcd" };
//	scanf("%d", &k);
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	L_Turn(arr,k,sz);
//	return 0;
//}
//实现一个函数，可以左旋字符串中的k个字符。
//例如：
//ABCD左旋一个字符得到BCDA
//ABCD左旋两个字符得到CDAB
//void revier(char ch[], int n, int sz)
//{
//	int i = 0;
//	char ch1[20];
//	for (i = 0; i < n; i++)
//	{
//		ch1[i] = ch[i];//需要翻转到后面的先拿下来
//	}
//	//不需要翻转的往前移
//	for (i = 0; i < sz - n; i++)
//	{
//		ch[i] = ch[i + n];
//	}
//	//将刚才拿下来的放回去
//	for (i = 0; i < n; i++)
//	{
//		ch[sz - n + i] = ch1[i];//sz-n,是那个移动后空出的第一个位置
//		//+i  是表示将原来拿下来的i个字符放回。
//	}
//}
//int main()
//{
//	char ch[] = "ABCD";
//	int n = 0;
//	scanf("%d", &n);
//	int sz = strlen(ch);
//	revier(ch, n, sz);
//	for (int k = 0; k < sz; k++)
//	{
//		printf("%c", ch[k]);
//	}
//	return 0;
//}
//分析：原字符串ABCD1234，若要旋转4位，则将字符串分为两部分
//先将字符串ABCD逆序得：DCBA；
//然后将1234逆序得：4321；
//得到现在字符串：DCBA4321，再逆序得1234ABCD，即原字符串的左旋k位。